The multi-port memories are used in a number of technological fields, mainly in the field of communication systems and multi-processor systems. Particularly, these memories are used with switching operations for telecommunications, that is, with information transmission systems through data packs, for example in accordance with the “Ethernet” protocol.
As is known by those skilled in the art, at a digital clock signal pulse, through each port of a multi-port memory, one can access a different location of the memory for reading. Furthermore, the multi-port memories are symmetric memories, i.e. by writing strings of N bits to memory, one can read N bits from each port. For example, if a four-bit data bus is the input of a dual-port memory, from these ports one can read two distinct four-bit memory locations per each clock pulse.
To be able to read more than two memory locations at a time, i.e. to be able to have a greater number of ports, the four-bit data bus also requires to be written in parallel to additional memories that are similar to the previous one. For example, to have a multi-port memory with eight ports, the input data bus requires to be provided in parallel to three additional dual-port memories. The contents of the start memory will be thereby replicated to these additional memories.
With this technical approach, one can randomly access a number of various information, such as the data relative to different audio channels. However, upon increase in the N number of information bits to be written to the memory and read from each port, the above approach needs an excessive occupation of the chip area, as well as an excessive routing of signals. For considerable amounts of bits to be stored, in fact, multi-port memories are provided via elementary memory blocks each having a maximum number of ports. Consequently, one can increase the number of ports of these memories only by replicating the structures of all the above elementary multi-port memories for several times. This increases both the area occupied by the chip and the cost thereof. Furthermore, because of the symmetry of the memory, much more bits than strictly required are read from each port (for example, 1024 bits instead of 16 bits of an audio channel), i.e. a routing of redundant signals is generated that further deteriorates the sturdiness of the chip.